uas: Fix high-order alloc
authorHans de Goede <hdegoede@redhat.com>
Fri, 4 Mar 2016 07:18:00 +0000 (07:18 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 17 Mar 2016 01:25:23 +0000 (01:25 +0000)
Can you try building a kernel with the following line in drivers/usb/storage/uas.c :

         .can_queue = 65536,     /* Is there a limit on the _host_ ? */

(around line 815) Replaced with

         .can_queue = MAX_CMNDS,

That should help as MAX_CMNDS is 256, so claiming that we can queue more
is not helpful, and that likely is what is causing this quite high order alloc.

Reported-and-tested-by: Yves-Alexis Perez <corsac@corsac.net>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name uas-fix-high-order-alloc.patch

drivers/usb/storage/uas.c

index 5c66d3f7a6d070c54632751af97ef3c3d660744b..8d1785236d92b094b693db06f9cb82abb6bada05 100644 (file)
@@ -812,7 +812,7 @@ static struct scsi_host_template uas_host_template = {
        .slave_configure = uas_slave_configure,
        .eh_abort_handler = uas_eh_abort_handler,
        .eh_bus_reset_handler = uas_eh_bus_reset_handler,
-       .can_queue = 65536,     /* Is there a limit on the _host_ ? */
+       .can_queue = MAX_CMNDS, /* Is there a limit on the _host_ ? */
        .this_id = -1,
        .sg_tablesize = SG_NONE,
        .skip_settle_delay = 1,